home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / squid_dos.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  89 lines

  1. #
  2. # This script was written by Adam Baldwin <adamb@amerion.net>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10768);
  10.  script_bugtraq_id(3354);
  11.  script_cve_id("CVE-2001-0843");
  12.  script_version ("$Revision: 1.16 $");
  13.  name["english"] = "DoSable squid proxy server";
  14.  script_name(english:name["english"]);
  15.  desc["english"] = "
  16. A problem exists in the way the remote Squid proxy server handles a 
  17. special 'mkdir-only' PUT request, and causes denial of service to the proxy 
  18. server.
  19.  
  20. An attacker may use this flaw to prevent your LAN users from accessing
  21. the web.
  22.  
  23. Solution:  Apply the vendor released patch, for squid it is located here: 
  24. www.squid-cache.org.  You can also protect yourself by enabling access lists 
  25. on your proxy.
  26.  
  27. *** Note that Nessus solely relied on the version number of the remote
  28. *** proxy to issue this warning
  29.  
  30. Risk factor : Medium / High";
  31.  script_description(english:desc["english"]);
  32.  summary["english"] = "Determines via ver. if a proxy server is DoSable";
  33.  script_summary(english:summary["english"]);
  34.  script_category(ACT_GATHER_INFO);
  35.  family["english"] = "Denial of Service";
  36.  script_family(english:family["english"]);
  37.  script_copyright(english:"This script is Copyright (C) 2001 Adam Baldwin");
  38.  script_dependencies("find_service.nes", "proxy_use.nasl");
  39.  script_require_ports("Services/http_proxy", 8080, 3128);
  40.  exit(0);
  41. }
  42.  
  43. #
  44. # Code Starts Here
  45. #
  46.  
  47. include("http_func.inc");
  48.  
  49. port = get_kb_item("Services/http_proxy");
  50. if(!port)port = 3128;
  51. if(!get_port_state(port))port = 8080;
  52.  
  53.  
  54. if(get_port_state(port))
  55. {
  56.  soc = http_open_socket(port);
  57.  if(soc)
  58.  {
  59.   sData = http_get(item:"http://www.$$$$$", port:port);
  60.   send(socket:soc, data:sData);
  61.   data = http_recv(socket:soc);
  62.   http_close_socket(soc);
  63.   data = egrep(pattern: "^Server: ", string: data);
  64.  
  65.   if("Squid" >< data)
  66.   {
  67.    data = data - string("Server: Squid/");
  68.    #See if it's a vulnerable version
  69.    #CHECK VERSION 2.3
  70.    if(("2.3" >< data) && ("STABLE2" >< data) ||
  71.                 ("STABLE3" >< data) ||
  72.              ("STABLE4" >< data) ||
  73.              ("STABLE5" >< data))
  74.    {
  75.     security_warning(port);
  76.    }
  77.    #CHECK VERSION 2.4
  78.    if(("2.4" >< data) && ("STABLE1" >< data) || 
  79.              ("PRE-STABLE2" >< data) || 
  80.              ("PRE-STABLE" >< data) ||
  81.              ("DEVEL4" >< data) ||
  82.              ("DEVEL2" >< data))
  83.    {
  84.     security_warning(port);
  85.    }
  86.   }
  87.  }
  88. }
  89.